package com.wr.unsafe04;

import java.util.List;
import java.util.UUID;
import java.util.concurrent.CopyOnWriteArrayList;

// 并发下的集合
public class Test1 {
    public static void main(String[] args) {
        List<String> list = new CopyOnWriteArrayList<>();
        /**
         * 多个线程同时操作一个集合会出现ConcurrentModificationException异常
         * 解决方案：
         *  1、使用vector类  不推荐
         *  2、使用Collections工具类  Collections.synchronizedList(new ArrayList<>());  效率低 不推荐
         *  3、 JUC版 new CopyOnWriteArrayList<>(); 写入时复制
         */
        for (int i = 1; i <= 10; i++) {
            new Thread(()->{
               list.add(UUID.randomUUID().toString().substring(0,5));
                System.out.println(list);
            },String.valueOf(i)).start();
        }
    }
}
